The Internet (and technology generally) requires efficient systems for storing and accessing data and multi-dimensional databases are commonly used for these functions. Typically, multi-dimensional database systems store dimension member data as text strings only. In such multi-dimensional database systems, all dimension member data, including dimension member data having numeric values, must be represented as text. Additionally, many Internet standards, such as XML, are text-based. Accordingly, numeric and date data must be converted to text before storing the dimension member data in such a database system or representing the data in such text-based standards.
Dimension members are the names of points on the axes of a multi-dimensional database. For example, a multi-dimensional database “cube” might store sales values natively in cells and have a dimension “geographic region” with dimension members of “USA”, “Australia”, “WA”, “Seattle” and another dimension “sales commission” with members 8%, 10%, 12.5%, 14%. The “sales commission” members will need to be stored as text strings in conventional database systems.
Various conversion methods exist for converting numeric and date data to text. For example, a binary number could be divided into four-bit sections and then each section could be converted to hexadecimal. In this example, the binary number 0000 0001 0010 1110 1111 would become the hexadecimal representation (and text string) 012EF. Unfortunately, this and other conversion methods present various drawbacks. Conventional conversion methods produce text strings that are not properly sortable in their text representations. That is, a sort of the text representation of a group of numbers would not produce the same order as a sort on the same numbers in their numeric representation. Conventional conversion methods also fail to provide accurate results when the text representation of a number is converted back (reverse-converted) into a native (i.e., non-text) representation. This problem occurs, for example, when reverse-converting decimal representations of floating point numbers.
Therefore, there is a need in the art for a conversion method that permits textual representations of numbers to be properly sorted in the textual representation and converted back into numeric representations with accuracy. The method should also provide a means for differentiating between data types (e.g., numeric, date, string, Boolean, and null) of values represented as text.